আউটপুট জন্য GPIO ব্যবহার করে
এই অধ্যায়ে আমরা একটি রাস্পবেরি পাই এবং এর জিপিআইও ব্যবহার করব একটি এলইডি জ্বালাতে।
আমরা GPIO নিয়ন্ত্রণ করতে অনফ মডিউল সহ Node.js ব্যবহার করি।
একটি LED আলোর জন্য, আমরা একটি GPIO পিনকে "আউটপুট" হিসাবে ব্যবহার করি এবং এটি চালু এবং বন্ধ করার জন্য একটি স্ক্রিপ্ট তৈরি করি (ফ্ল্যাশিং)।
আমাদের কি দরকার?
এই অধ্যায়ে আমরা একটি LED বাতি নিয়ন্ত্রণ করার একটি সহজ উদাহরণ তৈরি করব।
এর জন্য আপনার প্রয়োজন:
- Raspberry Pi with Raspian, internet, SSH, with Node.js installed
- The onoff module for Node.js
- 1 x Breadboard
- 1 x 68 Ohm resistor
- 1 x Through Hole LED
- 2 x Female to male jumper wires
বিভিন্ন উপাদানের বর্ণনার জন্য উপরের তালিকার লিঙ্কগুলিতে ক্লিক করুন।
দ্রষ্টব্য:
LED এর প্রকারের উপর নির্ভর করে আপনি যে প্রতিরোধকটি ব্যবহার করছেন তা আমরা যা ব্যবহার করি তার থেকে আলাদা হতে পারে। বেশিরভাগ ছোট LED-এর জন্য শুধুমাত্র একটি ছোট রোধের প্রয়োজন হয়, প্রায় 200-500 ওহম। আপনি যে সঠিক মানটি ব্যবহার করেন তা সাধারণত গুরুত্বপূর্ণ নয়, তবে প্রতিরোধকের মান যত ছোট হবে, LED তত উজ্জ্বল হবে।
সার্কিট নির্মাণ
এখন আমাদের ব্রেডবোর্ডে সার্কিট তৈরি করার সময়।
আপনি যদি ইলেকট্রনিক্সে নতুন হন, আমরা রাস্পবেরি পাই এর জন্য পাওয়ার সাপ্লাই বন্ধ করার পরামর্শ দিই। এছাড়াও এটির ক্ষতি এড়াতে একটি অ্যান্টি-স্ট্যাটিক ম্যাট বা গ্রাউন্ডিং স্ট্র্যাপ ব্যবহার করুন।
রাস্পবেরি পাই সঠিকভাবে বন্ধ করতে কমান্ডটি ব্যবহার করুন:
pi@jassifteam:~ $ sudo shutdown -h now
রাস্পবেরি পাই-তে এলইডি ফ্ল্যাশিং বন্ধ করার পরে, রাস্পবেরি পাই থেকে পাওয়ার প্লাগটি টানুন (বা এটির সাথে সংযুক্ত পাওয়ার স্ট্রিপটি বন্ধ করুন)।
প্লাগটি সঠিকভাবে বন্ধ না করে টানলে মেমরি কার্ডের ক্ষতি হতে পারে।
সার্কিট ডায়াগ্রাম
Raspberry Pi 3 with Breadboard. Simple LED circuit
উপরের সার্কিট ডায়াগ্রামটি দেখুন।
আপনার সার্কিট এখন সম্পূর্ণ হওয়া উচিত এবং আপনার সংযোগগুলি উপরের চিত্রের মতো হওয়া উচিত।
এখন রাস্পবেরি পাই শুরু করার এবং এটির সাথে যোগাযোগ করার জন্য একটি Node.js স্ক্রিপ্ট লেখার সময়।
রাস্পবেরি পাই এবং Node.js ফ্ল্যাশিং LED স্ক্রিপ্ট
এখন যেহেতু আমরা সবকিছু সেট আপ করেছি, আমরা LED চালু এবং বন্ধ করার জন্য একটি স্ক্রিপ্ট লিখতে পারি।
আমাদের Node.js স্ক্রিপ্টগুলি ধরে রাখার জন্য একটি ডিরেক্টরি তৈরি করে শুরু করা যাক:
pi@jassifteam:~ $ mkdir nodetest
আমাদের নতুন ডিরেক্টরি দেখুন:
pi@jassifteam:~ $ cd nodetest
এখন ন্যানো এডিটর ব্যবহার করে "blink.js" নামে একটি নতুন ফাইল তৈরি করা যাক:
pi@jassifteam:~ $ nano blink.js
ফাইলটি এখন বিল্ট-ইন ন্যানো এডিটর দিয়ে খোলা এবং সম্পাদনা করা যেতে পারে।
নিম্নলিখিত কোড লিখুন বা পেস্ট করুন:
blink.js
let Gpio = require('onoff').Gpio; //include onoff to interact with the GPIO
let LED = new Gpio(4, 'out'); //use GPIO pin 4, and specify that it is output
let blinkInterval = setInterval(blinkLED, 250); //run the blinkLED function every 250ms
function blinkLED() { //function to start blinking
if (LED.readSync() === 0) { //check the pin state, if the state is 0 (or off)
LED.writeSync(1); //set pin state to 1 (turn LED on)
} else {
LED.writeSync(0); //set pin state to 0 (turn LED off)
}
}
function endBlink() { //function to stop blinking
clearInterval(blinkInterval); // Stop blink intervals
LED.writeSync(0); // Turn LED off
LED.unexport(); // Unexport GPIO to free resources
}
setTimeout(endBlink, 5000); //stop blinking after 5 seconds
কোড সংরক্ষণ করতে "Ctrl+x" টিপুন। "y" দিয়ে নিশ্চিত করুন এবং "Enter" দিয়ে নাম দিন।
কোড চালান:
pi@jassifteam:~ $ node blink.js
এখন LED আবার বন্ধ করার আগে 5 সেকেন্ড (10 বার) ফ্ল্যাশ করা উচিত!